iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0
Mobile Development

用Spring Boot架設後端結合Android前端建構智慧個人化推薦系統系列 第 3

Day3 使用Spring Boot建立第一個RESTful API:帶您從零開始開發API

  • 分享至 

  • xImage
  •  

什麼是RESTful API?

REST(Representational State Transfer)是一種設計風格,用於創建可擴展的網絡應用程式。RESTful API遵循以下幾個原則:

  • 資源導向:每個資源都有唯一的URI。
  • 統一介面:使用HTTP動詞進行操作:GET(獲取資料)、POST(創建資源)、PUT(更新資源)、DELETE(刪除資源)。
  • 無狀態性:每個請求都包含所有必要的信息,服務端不會儲存請求的狀態。
  • 可緩存性:服務器的回應可以緩存,提高性能。

那我們來做一個簡單的例子,首先創建一個模型

@Entity
@Table(name = "\"user\"") // 使用雙引號來括住user表名
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

再來是資料存取

public interface UserRepository extends JpaRepository<User, Long> {
}

然後是控制器

@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        return userRepository.findById(id)
                .map(user -> ResponseEntity.ok().body(user))
                .orElse(ResponseEntity.notFound().build());
    }

    @PostMapping
    public ResponseEntity<User> createUser(@RequestBody User user) {
        User savedUser = userRepository.save(user);
        return new ResponseEntity<>(savedUser, HttpStatus.CREATED);
    }

    @PutMapping("/{id}")
    public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User userDetails) {
        return userRepository.findById(id)
                .map(user -> {
                    user.setName(userDetails.getName());
                    user.setEmail(userDetails.getEmail());
                    User updatedUser = userRepository.save(user);
                    return ResponseEntity.ok(updatedUser);
                }).orElse(ResponseEntity.notFound().build());
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<HttpStatus> deleteUser(@PathVariable Long id) {
        userRepository.deleteById(id);
        return ResponseEntity.ok(HttpStatus.NO_CONTENT);
    }
}

這樣就完成一個簡單的RESTful api/images/emoticon/emoticon01.gif


上一篇
Day2 Spring Boot入門指南:介紹基本概念及環境設置
下一篇
Day4 Spring Boot的自動配置原理解說:深入了解自動配置的背後邏輯
系列文
用Spring Boot架設後端結合Android前端建構智慧個人化推薦系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言